A field programmable gate array (FPGA) is a versatile integrated circuit chip, the internal circuitry of which may be configured before packaging by a manufacturer or after packaging by an individual user to realize a user-specific circuit. To configure an FPGA, the user typically configures an on-chip interconnect structure of the FPGA so that selected circuit components in logic modules of the FPGA are electrically connected together in such a way that the resulting circuit is the user-specific circuit desired by the user. In an FPGA employing, for example, amorphous silicon antifuses, selected amorphous silicon antifuses electrically disposed between selected routing conductors in the interconnect structure are "programmed" to connect the selected routing conductors together electrically. Which antifuses are programmed and which antifuses are left unprogrammed determines how the circuit components of the numerous logic modules are interconnected and therefore determines the resulting circuit. FPGAs can employ other types of antifuse structures including, for example, antifuses employing nitrides and oxides. For further details on FPGAs and antifuses, see U.S. Pat. Nos. 5,557,136, 5,544,070, and 5,220,213 all of which are incorporated herein by reference in their entirety.
It is desired to provide a clock network wherein a clock signal can be provided to the clock inputs of flip-flops in numerous logic cells with a minimum delay from a dedicated clock pad to the flip-flop clock inputs. It is also desired to make the clock network versatile so that the clock network can be driven by the output of a logic cell rather than from the dedicated clock pad.